home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / prog / asmclock.arj / STDIO.H < prev    next >
C/C++ Source or Header  |  1990-10-18  |  6KB  |  225 lines

  1. /***
  2. *stdio.h - definitions/declarations for standard I/O routines
  3. *
  4. *    Copyright (c) 1985-1990, Microsoft Corporation.  All rights reserved.
  5. *
  6. *Purpose:
  7. *    This file defines the structures, values, macros, and functions
  8. *    used by the level 2 I/O ("standard I/O") routines.
  9. *    [ANSI/System V]
  10. *
  11. ****/
  12.  
  13. #if defined(_DLL) && !defined(_MT)
  14. #error Cannot define _DLL without _MT
  15. #endif
  16.  
  17. #ifdef _MT
  18. #define _FAR_ _far
  19. #else
  20. #define _FAR_
  21. #endif
  22.  
  23. #ifndef _SIZE_T_DEFINED
  24. typedef unsigned int size_t;
  25. #define _SIZE_T_DEFINED
  26. #endif
  27.  
  28. #ifndef _VA_LIST_DEFINED
  29. typedef char _FAR_ *va_list;
  30. #define _VA_LIST_DEFINED
  31. #endif
  32.  
  33. /* buffered I/O macros */
  34.  
  35. #define BUFSIZ    512
  36. #ifdef _MT
  37. #define _NFILE    40
  38. #else
  39. #define _NFILE    20
  40. #endif
  41. #define EOF    (-1)
  42.  
  43. #ifndef _FILE_DEFINED
  44. struct _iobuf {
  45.     char _FAR_ *_ptr;
  46.     int   _cnt;
  47.     char _FAR_ *_base;
  48.     char  _flag;
  49.     char  _file;
  50.     };
  51. typedef struct _iobuf FILE;
  52. #define _FILE_DEFINED
  53. #endif
  54.  
  55.  
  56. /* P_tmpnam: Directory where temporary files may be created.
  57.  * L_tmpnam size =  size of P_tmpdir
  58.  *    + 1 (in case P_tmpdir does not end in "\\")
  59.  *    + 6 (for the temp number string)
  60.  *    + 1 (for the null terminator)
  61.  */
  62.  
  63. #define  P_tmpdir "\\"
  64. #define  L_tmpnam sizeof(P_tmpdir)+8
  65.  
  66.  
  67. /* fseek constants */
  68.  
  69. #define SEEK_CUR 1
  70. #define SEEK_END 2
  71. #define SEEK_SET 0
  72.  
  73.  
  74. /* minimum guaranteed filename length, open file count, and unique
  75.  * tmpnam filenames.
  76.  */
  77.  
  78. #define FILENAME_MAX 63
  79. #define FOPEN_MAX 20
  80. #define SYS_OPEN 20
  81. #define TMP_MAX 32767
  82.  
  83.  
  84. /* define NULL pointer value */
  85.  
  86. #ifndef NULL
  87. #if (_MSC_VER >= 600)
  88. #define NULL    ((void *)0)
  89. #elif (defined(M_I86SM) || defined(M_I86MM))
  90. #define NULL    0
  91. #else
  92. #define NULL    0L
  93. #endif
  94. #endif
  95.  
  96.  
  97. /* declare _iob[] array */
  98.  
  99. #ifndef _STDIO_DEFINED
  100. #ifdef _DLL
  101. extern FILE _FAR_ _cdecl _iob[];
  102. #else
  103. extern FILE _near _cdecl _iob[];
  104. #endif
  105. #endif
  106.  
  107.  
  108. /* define file position type */
  109.  
  110. #ifndef _FPOS_T_DEFINED
  111. typedef long fpos_t;
  112. #define _FPOS_T_DEFINED
  113. #endif
  114.  
  115.  
  116. /* standard file pointers */
  117.  
  118. #define stdin  (&_iob[0])
  119. #define stdout (&_iob[1])
  120. #define stderr (&_iob[2])
  121. #define stdaux (&_iob[3])
  122. #define stdprn (&_iob[4])
  123.  
  124.  
  125. #define _IOREAD     0x01
  126. #define _IOWRT        0x02
  127.  
  128. #define _IOFBF        0x0
  129. #define _IOLBF        0x40
  130. #define _IONBF        0x04
  131.  
  132. #define _IOMYBUF    0x08
  133. #define _IOEOF        0x10
  134. #define _IOERR        0x20
  135. #define _IOSTRG     0x40
  136. #define _IORW        0x80
  137.  
  138.  
  139. /* function prototypes */
  140.  
  141. #ifndef _STDIO_DEFINED
  142. int _FAR_ _cdecl _filbuf(FILE _FAR_ *);
  143. int _FAR_ _cdecl _flsbuf(int, FILE _FAR_ *);
  144. FILE _FAR_ * _FAR_ _cdecl _fsopen(const char _FAR_ *,
  145.     const char _FAR_ *, int);
  146. void _FAR_ _cdecl clearerr(FILE _FAR_ *);
  147. int _FAR_ _cdecl fclose(FILE _FAR_ *);
  148. int _FAR_ _cdecl fcloseall(void);
  149. FILE _FAR_ * _FAR_ _cdecl fdopen(int, const char _FAR_ *);
  150. int _FAR_ _cdecl feof(FILE _FAR_ *);
  151. int _FAR_ _cdecl ferror(FILE _FAR_ *);
  152. int _FAR_ _cdecl fflush(FILE _FAR_ *);
  153. int _FAR_ _cdecl fgetc(FILE _FAR_ *);
  154. int _FAR_ _cdecl fgetchar(void);
  155. int _FAR_ _cdecl fgetpos(FILE _FAR_ *, fpos_t _FAR_ *);
  156. char _FAR_ * _FAR_ _cdecl fgets(char _FAR_ *, int, FILE _FAR_ *);
  157. int _FAR_ _cdecl fileno(FILE _FAR_ *);
  158. int _FAR_ _cdecl flushall(void);
  159. FILE _FAR_ * _FAR_ _cdecl fopen(const char _FAR_ *,
  160.     const char _FAR_ *);
  161. int _FAR_ _cdecl fprintf(FILE _FAR_ *, const char _FAR_ *, ...);
  162. int _FAR_ _cdecl fputc(int, FILE _FAR_ *);
  163. int _FAR_ _cdecl fputchar(int);
  164. int _FAR_ _cdecl fputs(const char _FAR_ *, FILE _FAR_ *);
  165. size_t _FAR_ _cdecl fread(void _FAR_ *, size_t, size_t, FILE _FAR_ *);
  166. FILE _FAR_ * _FAR_ _cdecl freopen(const char _FAR_ *,
  167.     const char _FAR_ *, FILE _FAR_ *);
  168. int _FAR_ _cdecl fscanf(FILE _FAR_ *, const char _FAR_ *, ...);
  169. int _FAR_ _cdecl fsetpos(FILE _FAR_ *, const fpos_t _FAR_ *);
  170. int _FAR_ _cdecl fseek(FILE _FAR_ *, long, int);
  171. long _FAR_ _cdecl ftell(FILE _FAR_ *);
  172. size_t _FAR_ _cdecl fwrite(const void _FAR_ *, size_t, size_t,
  173.     FILE _FAR_ *);
  174. int _FAR_ _cdecl getc(FILE _FAR_ *);
  175. int _FAR_ _cdecl getchar(void);
  176. char _FAR_ * _FAR_ _cdecl gets(char _FAR_ *);
  177. int _FAR_ _cdecl getw(FILE _FAR_ *);
  178. void _FAR_ _cdecl perror(const char _FAR_ *);
  179. int _FAR_ _cdecl _pclose(FILE _FAR_ *);
  180. FILE _FAR_ * _FAR_ _cdecl _popen(const char _FAR_ *,
  181.     const char _FAR_ *);
  182. int _FAR_ _cdecl printf(const char _FAR_ *, ...);
  183. int _FAR_ _cdecl putc(int, FILE _FAR_ *);
  184. int _FAR_ _cdecl putchar(int);
  185. int _FAR_ _cdecl puts(const char _FAR_ *);
  186. int _FAR_ _cdecl putw(int, FILE _FAR_ *);
  187. int _FAR_ _cdecl remove(const char _FAR_ *);
  188. int _FAR_ _cdecl rename(const char _FAR_ *, const char _FAR_ *);
  189. void _FAR_ _cdecl rewind(FILE _FAR_ *);
  190. int _FAR_ _cdecl rmtmp(void);
  191. int _FAR_ _cdecl scanf(const char _FAR_ *, ...);
  192. void _FAR_ _cdecl setbuf(FILE _FAR_ *, char _FAR_ *);
  193. int _FAR_ _cdecl setvbuf(FILE _FAR_ *, char _FAR_ *, int, size_t);
  194. int _FAR_ _cdecl sprintf(char _FAR_ *, const char _FAR_ *, ...);
  195. int _FAR_ _cdecl sscanf(const char _FAR_ *, const char _FAR_ *, ...);
  196. char _FAR_ * _FAR_ _cdecl tempnam(char _FAR_ *, char _FAR_ *);
  197. FILE _FAR_ * _FAR_ _cdecl tmpfile(void);
  198. char _FAR_ * _FAR_ _cdecl tmpnam(char _FAR_ *);
  199. int _FAR_ _cdecl ungetc(int, FILE _FAR_ *);
  200. int _FAR_ _cdecl unlink(const char _FAR_ *);
  201. int _FAR_ _cdecl vfprintf(FILE _FAR_ *, const char _FAR_ *, va_list);
  202. int _FAR_ _cdecl vprintf(const char _FAR_ *, va_list);
  203. int _FAR_ _cdecl vsprintf(char _FAR_ *, const char _FAR_ *, va_list);
  204. #define _STDIO_DEFINED
  205. #endif
  206.  
  207. /* macro definitions */
  208.  
  209. #define feof(_stream)      ((_stream)->_flag & _IOEOF)
  210. #define ferror(_stream)   ((_stream)->_flag & _IOERR)
  211. #define fileno(_stream)   ((int)(unsigned char)(_stream)->_file)
  212. #define getc(_stream)      (--(_stream)->_cnt >= 0 ? 0xff & *(_stream)->_ptr++ \
  213.     : _filbuf(_stream))
  214. #define putc(_c,_stream)  (--(_stream)->_cnt >= 0 \
  215.     ? 0xff & (*(_stream)->_ptr++ = (char)(_c)) :  _flsbuf((_c),(_stream)))
  216. #define getchar()      getc(stdin)
  217. #define putchar(_c)      putc((_c),stdout)
  218.  
  219. #ifdef _MT
  220. #undef    getc
  221. #undef    putc
  222. #undef    getchar
  223. #undef    putchar
  224. #endif
  225.